﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

public partial class Produto : System.Web.UI.Page
{
    ProdutoDAL oObj = new ProdutoDAL();
    List<ProdutoDAL> lst = new List<ProdutoDAL>();

    CategoriaDAL oCat = new CategoriaDAL();
    List<CategoriaDAL> lCat = new List<CategoriaDAL>();

    

    protected void Page_Load(object sender, EventArgs e)
    {
        
        carregaCategoria();
        if (Request.QueryString["id"] != "")
        {
            carregaProduto( Convert.ToInt32 ( Request.QueryString["id"] ) );
            //idInicial = Convert.ToInt32 ( Request.QueryString["id"] );
        }
    }

    public void carregaCategoria() {
        //if (!IsPostBack)
        //{
            //List<ProdutoDAL> lProd = new List<ProdutoDAL>();
            //lProd = ProdutoDAL.SelecionarTodos("");
            lCat = CategoriaDAL.SelecionarMenu();
            //lst = ProdutoDAL.SelecionarTodos("");
            rptCategoria.DataSource = lCat;
            rptCategoria.DataBind();
            if (Request.QueryString["id"] != null)
            {

                foreach (RepeaterItem item in rptCategoria.Items)
                {

                    HiddenField hdnidProduto = (HiddenField)item.FindControl("hdnidProduto");
                    HiddenField hdnidCategoria = (HiddenField)item.FindControl("hdnidCategoria");
                    HyperLink hnk = (HyperLink)item.FindControl("hnkProduto");
                    LinkButton btn = (LinkButton)item.FindControl("lnkProduto");
                    ListView lsv = (ListView)item.FindControl("lsvProdutoCategoria");

                    ProdutoCategoriaDAL oProdutoCategoria = new ProdutoCategoriaDAL();
                    List<ProdutoCategoriaDAL> lProdutoCategoria = new List<ProdutoCategoriaDAL>();

                    if (hdnidProduto.Value == "0")
                    {
                        hnk.NavigateUrl = "Produto.aspx?id=" + 1;                    }
                    else { 
                        hnk.NavigateUrl = "Produto.aspx?id=" + hdnidProduto.Value;
                    }

                    oProdutoCategoria.idProduto = Convert.ToInt32(Request.QueryString["id"]);
                    lProdutoCategoria = oProdutoCategoria.selecionaPorId();

                    lsv.Visible = false;
                    // Se a categoria da lista for igual a categoria no qual pertence ao produto clicado    
                    if (Convert.ToInt32(hdnidCategoria.Value) == oProdutoCategoria.idCategoria)
                    {
                        hnk.CssClass = "menuCategoriaOn";
                        lsv.Visible = true;
                    }

                    ProdutoCategoriaDAL oPC = new ProdutoCategoriaDAL();
                    List<ProdutoCategoriaDAL> lPC = new List<ProdutoCategoriaDAL>();

                    oPC.idCategoria = Convert.ToInt32(btn.CommandArgument);
                    lPC = oPC.selecionaPorId();

                    int total = lPC.Count();

                    if (total == 1)
                    {
                        foreach (ProdutoCategoriaDAL nitem in lProdutoCategoria)
                        {
                          //  hnk.NavigateUrl = "Produto.aspx?id=" + nitem.idProduto;
                        }

                    }
                    else
                    {
                        lsv.DataSource = lPC;
                        lsv.DataBind();
                        int tot = 0;    
                        foreach (ListViewItem subitem in lsv.Items)
                        {
                            HiddenField hdnidSubProduto = (HiddenField)subitem.FindControl("hdnidSubProduto");
                            HyperLink lnk = (HyperLink)subitem.FindControl("HyperLink1");
                            // Label lbl = (Label)subitem.FindControl("Label1");
                            tot++;
                            if (tot == 1)
                            {
                                hnk.NavigateUrl = "Produto.aspx?id=" + hdnidSubProduto.Value; // CAtegoria 
                            }

                            lnk.NavigateUrl = "Produto.aspx?id=" + hdnidSubProduto.Value;

                            if (hdnidSubProduto.Value == Request.QueryString["id"])
                            {
                                lnk.CssClass = "menuSubCategoriaOn";
                                //hnk.CssClass = "menuCategoriaOn";
                            }


                        }

                    }

                   
                } //foreach
            }
        //}
    }
    public void carregaProduto(int id) {
        ProdutoDAL rsObj = new ProdutoDAL();
        List<ProdutoDAL> rsLst = new List<ProdutoDAL>();
        rsObj.SelecionarPorID(id);
        rsLst.Add(rsObj);
        frmProduto.DataSource = rsLst;
        frmProduto.DataBind();

        if (rsObj.FonteFibra.Equals("")) {
            frmProduto.FindControl("FonteFibra").Visible = false;
        }
       

    }

    public void carregaProdutoMenu() { 

    }

    protected void lnkProduto_Click(object sender, CommandEventArgs e)
    {
		/*
        carregaProduto(Convert.ToInt32(e.CommandArgument) );       
        foreach (RepeaterItem item in rptCategoria.Items)
        {
            LinkButton btn = (LinkButton)item.FindControl("lnkProduto");
            if (btn.CommandArgument == e.CommandArgument) {
                btn.CssClass = "menuCategoriaOn";
            }
        }
		*/

        foreach (RepeaterItem item in rptCategoria.Items)
        {          
            LinkButton btn = (LinkButton)item.FindControl("lnkProduto");
            ListView lsv = (ListView)item.FindControl("lsvProdutoCategoria");
            //Label lbl = (Label)item.FindControl("testLabel");


            ProdutoCategoriaDAL oProdutoCategoria = new ProdutoCategoriaDAL();
            List<ProdutoCategoriaDAL> lProdutoCategoria = new List<ProdutoCategoriaDAL>();
            
            if (btn.CommandArgument == e.CommandArgument)
            {
                btn.CssClass = "menuCategoriaOn";
                oProdutoCategoria.idCategoria = Convert.ToInt32(btn.CommandArgument);
                lProdutoCategoria = oProdutoCategoria.selecionaPorId();
				
				int total = lProdutoCategoria.Count();
				if (total == 1) {
					foreach (ProdutoCategoriaDAL nitem in lProdutoCategoria) {
                        carregaProduto(nitem.idProduto); 
					}
					
				}else {
                    lsv.DataSource = lProdutoCategoria;
                    lsv.DataBind();

                    foreach (ListViewItem subitem in lsv.Items)
                    {
                        HiddenField hdnidProduto = (HiddenField)subitem.FindControl("hdnidProduto");
                        HyperLink lnk = (HyperLink)subitem.FindControl("HyperLink1");
                       // Label lbl = (Label)subitem.FindControl("Label1");
                        lnk.NavigateUrl = "Produto.aspx?id=" + hdnidProduto.Value;
                    }
				}
            }            
        } //foreach
		
    }

    protected void lnkSubProduto_Click(object sender, CommandEventArgs e)
    {
        carregaProduto( 3 );
    }

    public static string formataTituloProduto(string nm)
    {
        return nm.Replace(" ", "");
    }
    protected void rptCategoria_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
           //HiddenField id = (HiddenField)e.Item.DataItem;
            //int user_id = Int32.Parse(((System.Data.Common.DbDataRecord)e.Item.DataItem)["idCategoria"].ToString());
           // RepeaterItem st =  
    
            //string st = (((Evaluation)e.Item.DataItem).Rating.ToString();

            //Label label = (Label)e.Item.FindControl("testLabel");
            /*
            Repeater rpt = (Repeater)e.Item.FindControl("rptProdutoCategoria");
            DropDownList lista = (DropDownList)e.Item.FindControl("ddlProdutoCategoria");
            

            
            ProdutoCategoriaDAL oProdutoCategoria = new ProdutoCategoriaDAL();
            List<ProdutoCategoriaDAL> lProdutoCategoria = new List<ProdutoCategoriaDAL>();

            oProdutoCategoria.idCategoria = Convert.ToInt32(id) ;
            lProdutoCategoria = oProdutoCategoria.selecionaPorId();

            lista.DataTextField = "idProduto";
            lista.DataValueField = "idProduto";

            rpt.DataSource = lProdutoCategoria;
            rpt.DataBind();
            */

        }
    }
}